#include <iostream>
#include <unistd.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/wait.h>

using namespace std;

int main()
{
    int a = 10;
    int b = 0;
    a /= b;
    cout << "a=" << a << endl;

    // pid_t id = fork();
    // if(id == 0) {
    //     // child
    //     while (true)
    //     {
    //         cout << "I am child, pid is " << getpid() << endl;
    //         sleep(1);
    //     }
    // }
    // // father
    // int status = 0;
    // pid_t rid = waitpid(id, &status, 0);
    // if(rid == id) {
    //     cout << "child quit info\nrid: " << rid << " exit signal: " << (status & 0x7f)
    //     << " core dump: " << ((status >> 7) & 1) << endl;
    // }
    return 0;
}




// void work()
// {
//     cout << "this is log..." << endl;
// }

// void handler(int sigNum)
// {
//     work();
//     int n = alarm(5);
//     cout << "上一个闹钟的剩余时间" << n << endl;
//     // cout << "Get a signal, num is " << sigNum << endl;
//     // exit(1);
// }

// int main()
// {
//     signal(SIGALRM, handler);
//     alarm(100);      
//     int cnt = 0; 
//     while(true) {
//         cout << "Process is running" << endl;
//         cnt++;
//         sleep(1);
//         if(cnt == 5) 
//         raise(SIGALRM);
//     }
//     // signal(SIGSEGV, handler);
//     // int *p = nullptr;
//     // cout << "before point error" << endl;
//     // sleep(5);
//     // *p = 1234;
//     // cout << "after point error" << endl;
//     // return 0;
// }